#include <Wire.h>
#include <Adafruit_INA219.h>

// 定义工作电压范围
#define MIN_VOLTAGE 11.1
#define MAX_VOLTAGE 12.6

Adafruit_INA219 ina219;

void setup() {
  Serial.begin(115200);
  
  // 初始化INA219
  if (!ina219.begin()) {
    Serial.println("无法找到INA219芯片！");
    while (1) { delay(10); }
  }
  
  Serial.println("电压监控系统已启动...");
}

void loop() {
  float busVoltage = ina219.getBusVoltage_V();  // 获取总线电压
  
  // 打印电压值（可选）
  Serial.print("电池电压: "); 
  Serial.print(busVoltage); 
  Serial.println(" V");
  
  // 检查电压是否在安全范围内
  if (busVoltage >= MIN_VOLTAGE && busVoltage <= MAX_VOLTAGE) {
    enableCartOperation(true);
  } else {
    enableCartOperation(false);
    
    // 添加额外警告信息
    if (busVoltage < MIN_VOLTAGE) {
      Serial.println("电压过低！请充电！");
    } else {
      Serial.println("电压过高！危险！");
    }
  }
  
  delay(1000);  // 每秒检测一次
}

// 控制小车工作状态的函数
void enableCartOperation(bool enable) {
  if (enable) {
    // 这里添加允许小车工作的代码
    // 例如：digitalWrite(MOTOR_EN_PIN, HIGH);
    Serial.println("状态：正常工作");
  } else {
    // 这里添加停止小车工作的代码
    // 例如：digitalWrite(MOTOR_EN_PIN, LOW);
    Serial.println("状态：已停止");
  }
}